using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace Win32SDK
{
    public sealed class imm32
    {
        public const string Dll = "imm32.Dll";
        private imm32()
        {
        }


        [DllImport(imm32.Dll, CharSet = CharSet.Auto)]
        public static extern IntPtr ImmAssociateContext(HandleRef hWnd, HandleRef hIMC);
        [DllImport(imm32.Dll, CharSet = CharSet.Auto)]
        public static extern IntPtr ImmCreateContext();
        [DllImport(imm32.Dll, CharSet = CharSet.Auto)]
        public static extern bool ImmDestroyContext(HandleRef hIMC);
        [DllImport(imm32.Dll, CharSet = CharSet.Auto)]
        public static extern IntPtr ImmGetContext(HandleRef hWnd);
        [DllImport(imm32.Dll, CharSet = CharSet.Auto)]
        public static extern bool ImmGetConversionStatus(HandleRef hIMC, ref int conversion, ref int sentence);
        [DllImport(imm32.Dll, CharSet = CharSet.Auto)]
        public static extern bool ImmGetOpenStatus(HandleRef hIMC);
        [DllImport(imm32.Dll, CharSet = CharSet.Auto)]
        public static extern bool ImmNotifyIME(HandleRef hIMC, int dwAction, int dwIndex, int dwValue);
        [DllImport(imm32.Dll, CharSet = CharSet.Auto)]
        public static extern bool ImmReleaseContext(HandleRef hWnd, HandleRef hIMC);
        [DllImport(imm32.Dll, CharSet = CharSet.Auto)]
        public static extern bool ImmSetConversionStatus(HandleRef hIMC, int conversion, int sentence);
        [DllImport(imm32.Dll, CharSet = CharSet.Auto)]
        public static extern bool ImmSetOpenStatus(HandleRef hIMC, bool open);
        




    }
}
